Database Tutorials Stored Procedure এবং Function তৈরি উদাহরণ গাইড ও নোট

277

Stored Procedures এবং Functions হল MySQL ডেটাবেসের অংশ, যা পুনরায় ব্যবহৃত কোড বা লজিক সঞ্চয় করে এবং ডেটাবেসের মধ্যে কার্যক্রমের অটোমেশন করতে সহায়তা করে।

  • Stored Procedure: একটি স্টোরড প্রসিডিউর হল এক বা একাধিক SQL স্টেটমেন্টের একটি সংগ্রহ যা ডেটাবেসে সংরক্ষিত থাকে এবং পুনরায় ব্যবহার করা যায়।
  • Function: একটি ফাংশন হল একটি SQL কোড ব্লক যা একটি একক মান (যেমন, সংখ্যা বা স্ট্রিং) রিটার্ন করে।

1. Stored Procedure তৈরি করা

একটি স্টোরড প্রসিডিউর সাধারণত ডেটাবেসে কিছু কার্যক্রম সম্পাদন করার জন্য ব্যবহৃত হয়, যেমন ডেটা ইনসার্ট, আপডেট, বা ডিলিট করা। এটি একাধিক SQL স্টেটমেন্টকে একত্রে একটি ব্লক হিসেবে সংরক্ষণ করে।

Stored Procedure তৈরি উদাহরণ:

ধরা যাক, আমাদের একটি employees টেবিল আছে, যেখানে কর্মচারীদের তথ্য রয়েছে। আমরা একটি স্টোরড প্রসিডিউর তৈরি করব যা একটি নির্দিষ্ট ডিপার্টমেন্টের সমস্ত কর্মচারীর তথ্য নির্বাচন করবে।

Stored Procedure তৈরি:
DELIMITER CREATEPROCEDUREGetEmployeesByDepartment(INdeptnameVARCHAR(50))BEGINSELECTemployeeid,firstname,lastname,departmentFROMemployeesWHEREdepartment=deptname;END

CREATE PROCEDURE GetEmployeesByDepartment (IN dept_name VARCHAR(50))
BEGIN
    SELECT employee_id, first_name, last_name, department
    FROM employees
    WHERE department = dept_name;
END

DELIMITER ;

এখানে:

  • IN dept_name VARCHAR(50): এটি একটি ইনপুট প্যারামিটার যা ডিপার্টমেন্টের নাম নেয়।
  • SELECT কুয়েরি ডিপার্টমেন্ট অনুযায়ী কর্মচারীদের তথ্য বের করে।
Stored Procedure কল করা:
CALL GetEmployeesByDepartment('HR');

এই কুয়েরি HR ডিপার্টমেন্টের সমস্ত কর্মচারীর তথ্য প্রদান করবে।


2. Function তৈরি করা

একটি Function সাধারণত একটি নির্দিষ্ট মান রিটার্ন করে এবং এটি SQL কুয়েরিতে সরাসরি ব্যবহার করা যেতে পারে। ফাংশনগুলো একটি মান রিটার্ন করে, এবং এর ভিতরে যেকোনো ধরনের SQL অপারেশন থাকতে পারে।

Function তৈরি উদাহরণ:

ধরা যাক, আমাদের একটি employees টেবিল আছে এবং আমরা একটি ফাংশন তৈরি করব যা কর্মচারীর বেতন এবং বোনাস যোগ করে মোট বেতন রিটার্ন করবে।

Function তৈরি:
DELIMITER CREATEFUNCTIONCalculateTotalSalary(empidINT)RETURNSDECIMAL(10,2)DETERMINISTICBEGINDECLAREtotalsalaryDECIMAL(10,2);DECLAREbasesalaryDECIMAL(10,2);DECLAREbonusDECIMAL(10,2);--FetchingbasesalaryandbonusfromtheemployeestableSELECTsalary,bonusINTObasesalary,bonusFROMemployeesWHEREemployeeid=empid;--CalculatingtotalsalarySETtotalsalary=basesalary+bonus;--ReturningtotalsalaryRETURNtotalsalary;END

CREATE FUNCTION CalculateTotalSalary(emp_id INT) 
RETURNS DECIMAL(10,2)
DETERMINISTIC
BEGIN
    DECLARE total_salary DECIMAL(10,2);
    DECLARE base_salary DECIMAL(10,2);
    DECLARE bonus DECIMAL(10,2);

    -- Fetching base salary and bonus from the employees table
    SELECT salary, bonus INTO base_salary, bonus
    FROM employees
    WHERE employee_id = emp_id;

    -- Calculating total salary
    SET total_salary = base_salary + bonus;

    -- Returning total salary
    RETURN total_salary;
END

DELIMITER ;

এখানে:

  • emp_id: ফাংশনের ইনপুট প্যারামিটার, যা কর্মচারীর আইডি নেয়।
  • base_salary এবং bonus: কর্মচারীর বেতন এবং বোনাস ফেচ করে এবং তাদের যোগফল হিসাব করে total_salary রিটার্ন করে।
Function কল করা:
SELECT CalculateTotalSalary(101);

এটি employee_id 101 এর জন্য মোট বেতন (বেতন + বোনাস) রিটার্ন করবে।


Stored Procedure এবং Function এর মধ্যে পার্থক্য

FeatureStored ProcedureFunction
Return Typeকোন কিছু রিটার্ন নাও করতে পারে (ডেটা পরিবর্তন করে)।একটি নির্দিষ্ট মান (যেমন, সংখ্যা বা স্ট্রিং) রিটার্ন করে।
Usage in SQLCALL কৌশলে কল করা হয়।সাধারণ SQL কুয়েরিতে ব্যবহার করা যেতে পারে (যেমন, SELECT কুয়েরি)।
Transactional Supportএকটি বা একাধিক ট্রানজেকশন সমর্থন করে।সাধারণত একটি একক মান রিটার্ন করে, ট্রানজেকশন সমর্থন নাও করতে পারে।
Side Effectsডেটাবেসের মধ্যে সাইড এফেক্ট তৈরি করতে পারে (ইনসার্ট, আপডেট, ডিলিট)।ডেটাবেসের মধ্যে কোন সাইড এফেক্ট তৈরি করে না।

সারাংশ

  • Stored Procedures ব্যবহৃত হয় দীর্ঘ বা পুনরায় ব্যবহৃত SQL কোড লজিক সংরক্ষণ করার জন্য এবং এটি ডেটাবেসের কার্যকলাপ যেমন ডেটা ইন্সার্ট, আপডেট, বা ডিলিট করতে পারে।
  • Functions একটি নির্দিষ্ট মান রিটার্ন করে, যা সরাসরি SQL কুয়েরিতে ব্যবহার করা যায়।
  • Stored Procedure সাধারণত ব্যাকএন্ড লজিক পরিচালনা করতে ব্যবহৃত হয়, যেখানে Functions সাধারণত একক মান বের করতে ব্যবহৃত হয় যা SQL কুয়েরিতে সোজা ব্যবহার করা যায়।
Content added By
Promotion

Are you sure to start over?

Loading...